﻿// 329. 围栏障碍训练场.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>


/*

https://www.acwing.com/problem/content/331/

农夫约翰为他的奶牛们建造了一个围栏障碍训练场，以供奶牛们玩耍。

训练场由 N
 个不同长度的围栏组成，每个围栏都与 x
 轴平行，并且第 i
 个围栏的 y
 坐标为 i
。

训练场的出口位于原点，起点位于 (S,N)
   +-S-+-+-+        (fence #N)

 +-+-+-+            (fence #N-1)

     ...               ...

   +-+-+-+          (fence #2)

     +-+-+-+        (fence #1)

=|=|=|=*=|=|=|      (barn)

-3-2-1 0 1 2 3
这些牛会从起点处开始向下走，当它们碰到围栏时会选择沿着围栏向左或向右走，走到围栏端点时继续往下走，按照此种走法一直走到出口为止。

请问，这些牛从开始到结束，行走的水平距离最少为多少。

输入格式
第一行包含两个整数 N
 和 S
。

第 2..N+1
 行，每行包含两个整数 Ai,Bi
，表示一个围栏的起始横坐标和结束横坐标，其中第 i+1
 行表示第 i
 个围栏的数据。

起点坐标满足 AN≤S≤BN
。

输出格式
输出一个整数，表示最小水平行走距离。

数据范围
1≤N≤30000
,
−105≤S≤105
,
−105≤Ai,Bi≤105
输入样例：
4 0
-2 1
-1 2
-3 0
-2 1
输出样例：
4
*/
int main()
{
    std::cout << "Hello World!\n";
}

 